package com.xz.knowledgeDuplication.thread.sync;

import java.util.ArrayList;
import java.util.List;

/**
 * 不安全list集合
 * @author 召
 * @date 2022-07-25 21:41:14
 */
public class UnsafeList {

    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        for (int i = 0; i < 1000; i++) {
            new Thread(() -> {
                // synchronized锁变化的对象
                synchronized (list) {
                    // 可能存在多个线程在同一个位置插入,所以大小不为1000
                    list.add(Thread.currentThread().getName());
                }
            }).start();
        }
        try {
            Thread.sleep(3000);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        System.out.println(list.size());
    }
}
